java 中^什么意思?h ^= (h >>> 20) ^ (h >>> 12);

来源:百度知道 编辑:UC知道 时间:2024/06/02 16:14:25

异或,就是转化为二进制后相对位比较相同的为0不同的为1
h = h异或(h >>> 20)异或(h >>> 12)
>>> 是转化为二进制右移位,空出来的补0

“按位异或”运算符,是双目运算。
按位异或运算符^

逻辑运算均是按位进行操作,真值表如下:

AND (位与&) OR ( 位或| ) XOR ( 位异或^ )
1 & 1 = 1

1 & 0 = 0

0 & 1 = 0

0 & 0 = 0
1 | 1 = 1

1 | 0 = 1

0 | 1 = 1

0 | 0 = 0
1 ^ 1 = 0

1 ^ 0 = 1

0 ^ 1 = 1

0 ^ 0 = 0

例如:10100001^00010001=10110000
0^0=0,0^1=1 0异或任何数=任何数

1^0=1,1^1=0 1异或任何数=任何数取反

任何数异或自己=把自己置0